//
// Created by 吴喆 on 2020/4/2.
//

#ifndef SUMMER_FONT_H
#define SUMMER_FONT_H

#include <string>
#include <glm/glm.hpp>
#include "Texture.h"

struct Character {
    // 字形纹理的ID
    Texture2D textureID;
    // 字形大小
    glm::ivec2 size;
    // 从基准线到字形左部/顶部的偏移值
    glm::ivec2 bearing;
    // 原点距下一个字形原点的距离
    unsigned int advance;
};
class Font {

public:
    explicit Font() = default;
    virtual ~Font() = default;
    virtual void init(std::string &filePath);
    virtual Character *initCharacter(wchar_t character) = 0;
protected:
    std::string _filePath;

};


#endif //SUMMER_FONT_H
